package com.example.demo.controller;



import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;

/**
 * @author chenqiuran
 * @decription
 * @date 2021/8/22
 */
@Controller
public class BaseController {
    //log4j2
    protected Logger logger = LogManager.getLogger(BaseController.class);

    /**
     * @yucs 2021/8/30
     * 无权限页面展示
     */
    @RequestMapping("/noauth")
    public String noauth(){
        return "noauth";
    }

    /**
     * @yucs 2021/8/25 获取登录角色
     * @param session
     * @return 如果未登录就返回Null
     */
    protected Object getRole(HttpSession session){
        Object role = session.getAttribute("role");
        if(role==null){
            logger.info("当前无登录用户");
            return null;
        }
        //因为role传到controller后，还要做管理员和普通用户的角色判断，所以这里就不用再判断了
        return role;
    }

    /**
     * @yucs 2021/8/25
     * 获取登录Id,甭管登录的是啥角色,目前还是用username登录,所以先不用这个函数
     * @param session
     * @return Objective类型的long
     */
    protected Object getId(HttpSession session){
        Object id = session.getAttribute("id");
        if (id == null){
            logger.info("当前无登录用户");
            return null;
        }
        return id;
    }

    //获取管理员信息
    protected Object checkAdmin(HttpSession session){
        Object o = session.getAttribute("adminId");
        if(o==null){
            logger.info("无管理权限，返回管理员登陆页");
            return null;
        }
        logger.info("当前登录管理员ID：{}",o);
        return o;
    }

    //检查用户是否登录
    protected Object checkUser(HttpSession session){
        Object o = session.getAttribute("userId");
        if(o==null){
            logger.info("用户未登录");
            return null;
        }
        logger.info("用户已登录，用户ID：{}", o);
        return o;
    }
}
